package com.cskaoyan.javase.oop3._2inner._5anonymous._2notice;
/**
 * 匿名内部类的注意事项:
 *      1.它是特殊的局部内部类,在匿名子类的类体中,
 *         可以新增定义一些成员
 *         但是它同样没有static声明,可以定义不触发类加载的全局常量
 *         思考:
 *              它有没有构造器呢?
 *              没有
 *              这个子类是匿名的子类,不需要构造器,主要是用不了
 *
 *       2.匿名内部类语法中的小括号有用吗?
 *          难道是给看的?
 *          这个小括号是用来调用父类构造器的,是有用的
 *          可以给父类成员变量传参
 *          但是这个用途只限于普通类/抽象类,接口是没有构造器的
 *          如果是用匿名内部类创建接口的子类对象
 *          这个小括号就是语法了,没有任意作用了
 *
 *
 * @since 16:33
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        BaseA baseA = new BaseA(18, "张三") {
            // 匿名子类的类体
            static final int a = 10;
        };
        System.out.println(baseA.age);
        System.out.println(baseA.name);
    }
}
abstract class BaseA{
    int age;
    String name;

    public BaseA(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public BaseA() {
    }
}
